package com.chaosj.skill.zipkin.annotations

import brave.Span

/**
 * @Description:
 * @author: caoyangjie
 * @date: 2019年12月2019/12/6日 09:03
 * @Copyright: © 赢时胜
 */
interface ISpanParser {
    /**
     * 获取 annotate 值
     * @param yssSpan
     * @param args
     * @return
     */
    String parserAnnotate(NewSpan yssSpan, Object[] args);

    /**
     * 解析 链路名称
     * @param yssSpan
     * @param args
     * @return
     */
    String parserName(NewSpan yssSpan,Object[] args);

    /**
     * 解析 span 的tag值
     * @param yssSpan
     * @param args
     * @param span
     */
    void parserTag(NewSpan yssSpan, Object[] args, Span span);

    /**
     * 条件执行
     * @param yssSpan
     * @param args
     * @return
     */
    boolean filter(NewSpan yssSpan,Object[] args);
}
